﻿using PublicModels.APIObjs;

namespace ChangchunPublicInterfacs;

/// <summary>
/// 兴趣点查询模块
/// </summary>
public interface IPoiQuery
{
    /// <summary>
    /// 关键词查询
    /// </summary>
    /// <param name="keyword">关键词</param>
    /// <param name="page">查询结果的页码</param>
    /// <param name="tag">检索分类</param>
    /// <returns>兴趣点查询结果</returns>
    Task<PoiQueryResult> KeywordQueryAsync(string keyword, int page, string? tag = null);

    /// <summary>
    /// 圆形范围查询
    /// </summary>
    /// <param name="keyword">关键词</param>
    /// <param name="page">查询结果的页码</param>
    /// <param name="center">中心点</param>
    /// <param name="radius">半径</param>
    /// <param name="tag">检索分类</param>
    /// <returns></returns>
    Task<PoiQueryResult> CircleQueryAsync(string keyword, int page, Point center, double radius, string? tag = null);

    /// <summary>
    /// 位置逆编码
    /// </summary>
    /// <param name="location">要解析的位置坐标</param>
    /// <returns>解析结果</returns>
    Task<LocationDecodeResult> LocationDecodeQueryAsync(Location location);

}
